Drew Weber Muze Lua Scripts — Version 1

Welcome! These REAPER Lua scripts were put together to make working with the NuSpace Audio Muze binaural plugin easier, especially for keyboard and screen-reader users. Whether you're placing a sound in one spot, building movement across a clip, or routing audio into multiple spatial tracks, I hope these tools make the creative part more fun.

Thanks for checking them out, and happy mixing!

What you'll need

These scripts were developed around a particular Muze parameter layout. If you have a different plugin version, check compatibility before using them in an important project.

Installation

  1. Extract the ZIP to a convenient folder. Keep the Muze_Parameters folder alongside the Lua scripts; do not separate it from Muze_Select_Parameter.lua.
  2. In REAPER, open the Actions list.
  3. Choose the option to load a ReaScript, and add the .lua scripts you want to use.
  4. Bind the scripts to keyboard shortcuts: in REAPER's Actions list, select a loaded script, choose Add in the Shortcuts for selected action section, and press the key combination you want to use. Repeat for the scripts you plan to run regularly, especially Prepare, Write, Select Parameter, Increase, Decrease, Record Preset, and Load Preset. The scripts do not assign shortcuts automatically.
  5. Save a backup of your project before experimenting with automation or routing.

Important: The seven .muzeselect files are supporting selection files, not scripts to import into the Actions list.

Control Muze parameters from the keyboard

These three scripts work together:

The available choices are Source 1 Azimuth, Orientation Turn Rate, Source 1 Distance, Source 1 Elevation, Swap Turn Axis, Orientation Yaw, and Gain. The increase/decrease scripts adjust continuous parameters in approximately 1% normalized steps. For Swap Turn Axis, either adjustment script toggles the setting.

Select the track containing exactly one Muze FX before using the adjustment scripts. The chosen parameter is remembered for later use. No PowerShell or background helper is required.

Set a fixed Muze position on an item

  1. Put one Muze instance on the track and select the media item whose duration you want to control.
  2. Run Muze_Prepare_Selected_Item_For_Editing.lua. This temporarily suspends Muze's parameter automation so you can adjust settings manually.
  3. Set your desired Muze position.
  4. Run Muze_Write_All_Settings_To_Selected_Item.lua to write those settings across the selected item's time span and reactivate automation.
  5. Play the project to hear the result.

Remember: Prepare → adjust Muze → Write → playback. Don't run Prepare again after Write unless you intend to edit the position again, because Prepare suspends Muze automation.

The scripts expect exactly one Muze track FX on the selected item's track. They work on track FX, not take FX.

Record and load position presets

Record a preset

  1. Select an item on the track with Muze.
  2. Adjust Muze to your first position and run Muze_Record_Position_Preset.lua. The script captures the current parameter settings.
  3. Change Muze's settings and run the recorder again for each additional position.
  4. When you're finished, run the recorder once more without changing any Muze setting. This opens the save process.
  5. Save the resulting .muzepreset file. A single captured position makes a fixed preset; multiple positions make a movement preset.

The recorder captures positions, not the timing between keypresses. It doesn't write automation while recording.

Load a preset

  1. Select the item that should receive the preset.
  2. Run Muze_Load_Position_Preset.lua.
  3. Browse to a .muzepreset file and open it.
  4. The loader writes the preset's positions across the selected item's duration, with evenly spaced positions and linear transitions between them. A one-position preset holds a fixed setting.
  5. Play the item. Automation is already active; don't run Prepare before listening.

Where are presets saved? By default, the recorder saves under REAPER's resource directory in Muze Presets, using Fixed and Movement subfolders. The loader initially opens in the folder containing its Lua script. You may need to browse to your saved presets the first time.

If you need to discard an unfinished capture, run Muze_Reset_Position_Recording.lua. It asks for confirmation before discarding the captured positions.

Heads-up: Loading a preset replaces Muze automation points within the selected item's time range. Save your project first if you might want to restore earlier automation.

Send audio to spatial tracks

Split stereo into left and right destinations

Muze_Stereo_Routing.lua takes the selected source track and routes its left and right channels separately to the next two tracks. Put Muze on those destination tracks to place each channel independently. The script disables the source track's direct master/parent send so the original doesn't play twice.

Send stereo to several destination tracks

Muze_Route_Stereo_To_Multiple_Tracks.lua routes the selected source track's stereo output to a number of following tracks you choose. Each destination receives the stereo signal. The source's direct master/parent send is disabled; existing unrelated sends are left alone.

Both routing scripts require destination tracks to exist below the source track. Review your routing after running them, especially in projects that already have sends or folder routing.

A few friendly tips

Included scripts

Also included: the Muze_Parameters folder containing seven .muzeselect selection files.

Compatibility and a final note

These scripts were created and tested for a personal REAPER/Muze workflow. Other REAPER versions, Muze builds, operating systems, routing layouts, or accessibility setups may behave differently. They are provided as-is; back up your work and test before relying on them.

These are independent user-created scripts, not official REAPER or NuSpace Audio software.

Most of all, have fun. The whole point is to spend less time fighting controls and more time making sound move!